#ifndef LIBSHM_LIBRARY_H
#define LIBSHM_LIBRARY_H
#define ServoShm_Num_pram 128
typedef struct {
    int value;        //值
    unsigned  int value_flag:1; //flag
}Servopram; //可设置的值
typedef struct {
    Servopram pram[ServoShm_Num_pram];

}ServoShm;

/**
 * 创建共享内存
 * */
extern int Init_ServoShm(void);
/**
 *获取共享内存指针
 * 正常返回共享内存的地址，失败返回NULL
 * */
extern void *Get_Shm_Pointer(void);
/**
 * 读取数据
 *@param p 共享内存的地址
 *@param num 数据序号
 *@param data 返回数据
 *@param flag 数据对应的flag
 *
 *@return -1 获取失败 0 获取成功
 * */
extern int Read_Data_pram(void * p,int num,int *data,int *flag);
/**
 * 读取数据
 *@param p 共享内存的地址
 *@param num 数据序号
 *@param data 写入数据
 *@param flag 数据对应的flag 1有效 0视为无效 不写入
 *
 *@return -1 获取失败 0 获取成功
 * */
extern int Set_Data_pram(void * p,int num,int data,int flag);
#endif //LIBSHM_LIBRARY_H
